import pandas as pd

# 读取csv文件
df = pd.read_csv('order_train1.csv')

# 查看DataFrame的行数
num_rows = df.shape[0]
print("DataFrame的行数为：", num_rows)

# 检查是否有缺失值
if df.isnull().sum().sum() > 0:
    print('数据集中存在缺失值')
else:
    print('数据集中不存在缺失值')

# 检查是否有重复值
if df.duplicated().sum() > 0:
    print('数据集中存在重复值')
else:
    print('数据集中不存在重复值')

# 删除所有列的重复值，只保留第一次出现的数据
df.drop_duplicates(keep='first', inplace=True)

# 查找整行重复的数据
duplicate_rows = df[df.duplicated(keep=False)]

# 输出整行重复的数据
if len(duplicate_rows) > 0:
    print("整行重复数据：")
    print(duplicate_rows)
else:
    print("不存在整行重复数据。")

# 查看DataFrame的行数
num_rows = df.shape[0]
print("删除重复数据后DataFrame的行数为：", num_rows)

# 删除包含空值的行
df = df.dropna()

# 将日期列转换为日期类型
df['order_date'] = pd.to_datetime(df['order_date'])
# 拆分年、月、日并计算出周几
df['year'] = df['order_date'].dt.year
df['month'] = df['order_date'].dt.month
df['day'] = df['order_date'].dt.day
df['dayofweek'] = df['order_date'].dt.dayofweek

# 将销售渠道列转换为0-1编码
df= pd.get_dummies(df, columns=['sales_chan_name'])
# 删除包含负数值的行
num_cols = df.select_dtypes(include='number').columns
df = df[(df[num_cols] >= 0).all(axis=1)]
# 将两列合并为新的一列
df['cate_code'] = df['first_cate_code'].astype(str) + '_' + df['second_cate_code'].astype(str)
df['sales_region_item'] = df['sales_region_code'].astype(str) + '_' + df['item_code'].astype(str)

# 将处理后的数据保存为新的CSV文件
df.to_csv('order_train_yu.csv', index=False)